home *** CD-ROM | disk | FTP | other *** search
/ PC Home 138 / PC Home issue 138.iso / Software / Essentials / Netscape / nim.xpi / bin / chrome / aim.jar / content / aim / IMBuddyIconKnockKnock.js < prev    next >
Encoding:
JavaScript  |  2002-06-03  |  5.2 KB  |  155 lines

  1. //globals
  2. var IMServiceClass = Components.classes['@netscape.com/aim/IMManager;1'];
  3. var pIIMManager  = IMServiceClass.getService(Components.interfaces.nsIIMManager);
  4. var nimSession = pIIMManager.QueryInterface(Components.interfaces.nsIAimSession);
  5. var nimIM = pIIMManager.QueryInterface(Components.interfaces.nsIAimIM);
  6. var nimBuddy = pIIMManager.QueryInterface(Components.interfaces.nsIAimBuddy);
  7. inviteArgsObj = window.arguments[0];
  8. var buddyName    = inviteArgsObj.inviteProposalScreenName;
  9.  
  10. //this is used to check how we call the onunload handler. Either by butten clicks or by close.
  11. var buttonClose = 0;
  12.  
  13.  
  14. function fillImageFunction()
  15. {
  16.   var biimage = document.getElementById("bIcon");
  17.   var sn = document.getElementById("ScreenName");
  18.   var desc2 = document.getElementById("desc2");
  19.   var pDir = nimSession.profileDir;
  20.   var pictureDir = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
  21.   pictureDir.initWithPath(pDir.path);
  22.   pictureDir.append("picture");
  23.   if (pictureDir.exists()) {
  24.     pictureDir.append("temp"+buddyName+".gif");
  25.     if (pictureDir.exists()) {
  26.       var ioService = GetIOService();
  27.       var tfileurl = ioService.getURLSpecFromFile(pictureDir);
  28.       //this is just to avoid from loading from the cache.
  29.       var currentTime = new Date().getTime();
  30.       biimage.setAttribute("src", tfileurl+"?foobar="+currentTime);
  31.       var desc = aimString("bi.kktext").replace(/%ScreenName%/, buddyName);
  32.       var textNode = document.createTextNode(desc);
  33.       sn.appendChild(textNode);
  34.       var desc2Value = aimString("bi.kktext2");
  35.       var textNode1 = document.createTextNode(desc2Value);
  36.       desc2.appendChild(textNode1);
  37.     }
  38.   }
  39.  
  40.   document.getElementById("acceptButton").focus();
  41.  
  42.  
  43. }
  44.  
  45. function buddyIconKKOnUnload()
  46. {
  47.   // if this unload is called coz of the button close, just return.
  48.   if (buttonClose)
  49.     return;
  50.  
  51.   //if the user clicks the x on right top, => reject BI. This is how AIM works.
  52.   cmdBIIncomingReject();
  53. }
  54.  
  55. function cmdBIIncomingAccept()
  56. {
  57.   buttonClose = 1;
  58.   var pDir = nimSession.profileDir;
  59.  
  60.   var picturedir = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
  61.   picturedir.initWithPath(pDir.path);
  62.   picturedir.append("picture");
  63.  
  64.   var temppicturefile = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
  65.   temppicturefile.initWithPath(pDir.path);
  66.   temppicturefile.append("picture");
  67.  
  68.   var pictureDir = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
  69.   pictureDir.initWithPath(pDir.path);
  70.   pictureDir.append("picture");
  71.   if (pictureDir.exists()) {
  72.     pictureDir.append(buddyName+".gif");
  73.     if (pictureDir.exists()) {
  74.       //delete any existing <SN>.gif file from the dir.
  75.       pictureDir.remove(false);
  76.     }
  77.  
  78.     if(picturedir.exists()) {
  79.       //these tests shd ideally pass all the time.
  80.       var newname = buddyName+".gif";
  81.       temppicturefile.append("temp"+buddyName+".gif");
  82.       if (temppicturefile.exists()) {
  83.         //copy the tempSN.gif to SN.gif and remove tempSN.gif
  84.         temppicturefile.copyTo(picturedir, newname);
  85.         temppicturefile.remove(false);
  86.  
  87.         //IM window update
  88.         picturedir.append(newname);
  89.         var ioService = GetIOService();
  90.         picturedir = ioService.getURLSpecFromFile(picturedir);
  91.         var currentTime = new Date().getTime();
  92.         var pIAimIM = aimIM();
  93.           if(pIAimIM) {
  94.               var pWindow = pIAimIM.GetExistingIM(buddyName);
  95.               if(pWindow) {
  96.             var doc = pWindow.document;
  97.             var imageElement = doc.getElementById("BuddyIcon");
  98.             if (imageElement) {
  99.               imageElement.setAttribute("src", picturedir+"?foobar="+currentTime);
  100.             }
  101.               
  102.  
  103.           }
  104.         }
  105.       }
  106.     }
  107.   }
  108.  
  109.   nimIM.SetHasBIBuddyIconFlag(buddyName, true);
  110.  
  111.   var nimBuddy = aimBuddyManager();
  112.   nimBuddy.SetHasBuddyIconFlag(buddyName, true);
  113.   window.close();
  114.  
  115. }
  116.  
  117. function cmdBIIncomingReject()
  118. {
  119.   buttonClose = 1;
  120.   var rdf = aimRDF();
  121.   var rejres = rdf.GetResource("http://home.netscape.com/NC-rdf#Reject");
  122.   var trueliteral = rdf.GetLiteral("true");
  123.   nimIM.SetBuddyIconFlag(buddyName, rejres, trueliteral);
  124.   nimBuddy.SetBuddyIconRejectFlag(buddyName, true);
  125.   window.close();
  126. }
  127.  
  128. function cmdBIIncomingWarn()
  129. {
  130.   buttonClose = 1;
  131.   var warnUserArgs = new Object();
  132.   warnUserArgs.screenName = buddyName;
  133.   //two modal dialogs are bad in mozilla (until the control completes here, another modal dialog will not pop up).
  134.   window.close();  
  135.   window.openDialog("chrome://aim/content/WarnUser.xul","_blank", "chrome,dialog=no",warnUserArgs);
  136.   
  137. }
  138.  
  139. function GetIOService()
  140. {
  141.   var IOService = Components.classes["@mozilla.org/network/io-service;1"]
  142.           .getService(Components.interfaces.nsIIOService);
  143.  
  144.   return IOService;
  145. }
  146.  
  147. function stopShowingKK()
  148. {
  149.   if (document.getElementById("dontdisplay").checked)
  150.     aimPrefsManager().SetBoolPref("aim.buddyicon.showknockknock", false, null, false);
  151.   else
  152.     aimPrefsManager().SetBoolPref("aim.buddyicon.showknockknock", true, null, false);
  153. }
  154.  
  155.